#ifndef TRANSPORT_H
#define TRANSPORT_H

#include <QObject>
#include "globals.h"

class Transport : public QObject
{
    Q_OBJECT
    friend class Engine;
public:
    enum State {STOPPED, STARTED};
    explicit Transport(QObject *parent = 0);

    void setState(State s){state = s;}
    void setCycling(bool cycle){isCyclingOn = cycle;}
    void setLocators(TicksTime first, TicksTime second){output.lCycle = first; output.rCycle = second;}

protected:

    bool isPaused;
    bool isCyclingOn;
    //TicksTime lCycle;
    //TicksTime rCycle;
    TicksTime current;    
    State state;
    struct OutputData { // [begin .. r) + nCycles * [l .. r) + [l .. end) // if cycling is on
        TicksTime begin;    // from
        TicksTime end;      // til
        int nCycles;        // number of cycles if any
        TicksTime lCycle;
        TicksTime rCycle;
    } output;



signals:

public slots:

};

#endif // TRANSPORT_H
